package ar.edu.utn.frgp.banco.service.impl;

import java.util.ArrayList;
import java.util.List;


import ar.edu.utn.frgp.banco.dao.MovimientosDao;


import ar.edu.utn.frgp.banco.dao.impl.MovimientosDaoImpl;



import ar.edu.utn.frgp.banco.domain.Movimientos;


import ar.edu.utn.frgp.banco.exceptions.DataAccessException;
import ar.edu.utn.frgp.banco.exceptions.ServiceException;

import ar.edu.utn.frgp.banco.service.RecursoServiceMovimientos;


public class RecursoServiceMovimientosImpl implements RecursoServiceMovimientos{
	
	private MovimientosDao movimientosDao;
	
	
	
	public RecursoServiceMovimientosImpl() { 
		setMovimientosDao(new MovimientosDaoImpl());
		
	}
	
	public void setMovimientosDao(MovimientosDao movimientosDao) {
		this.movimientosDao = movimientosDao;
	}

	public MovimientosDao getMovimientosDao() {
		return movimientosDao;
	}
	
	

	
	
		

public void registrarMovimiento(Movimientos regMovimiento) throws ServiceException {
		
	
	try {
		movimientosDao.altaMovimiento(regMovimiento);
	} catch (DataAccessException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
		
				
	}



public List<Movimientos> listarMovimientos() throws ServiceException {
	List<Movimientos> movimientos = new ArrayList<Movimientos>();
	try {
		
		movimientos = movimientosDao.traerTodosLosMovimientos();
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return movimientos;
}


public List<Movimientos> listarMovimientosCuenta(int nroCuenta,int tipoOperacion, String inicio, String fin) throws ServiceException {
	List<Movimientos> movimientos = new ArrayList<Movimientos>();
	try {
		
		movimientos = movimientosDao.traerTodosLosMovimientosCuentas(nroCuenta,tipoOperacion,inicio,fin);
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return movimientos;
}

@Override
public List<Movimientos> listarMovimientosPorCuenta(int nroCuenta) throws ServiceException {
	List<Movimientos> movimientos = new ArrayList<Movimientos>();
	try {
		
		movimientos = movimientosDao.traerMovimientosCuentas(nroCuenta);
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return movimientos;
}



















	
	
}
